XML ডেটা লোড এবং কুয়েরি করা

Microsoft Technologies - লিংক (LinQ) LINQ to XML (LINQ for XML Data) |
213
213

LINQ to XML দিয়ে XML ডেটা লোড এবং কুয়েরি করা অত্যন্ত সহজ। আপনি যখন XML ডেটা লোড করেন, তখন LINQ-এর মাধ্যমে খুব সহজে XML ডেটার উপাদানগুলোকে ফিল্টার, পরিবর্তন এবং অনুসন্ধান করতে পারেন।

LINQ to XML ব্যবহার করতে আপনাকে System.Xml.Linq নামস্পেস ইনক্লুড করতে হয়, যার মধ্যে XDocument এবং XElement ক্লাসগুলি থাকে। XDocument ক্লাসটি পুরো XML ডকুমেন্ট রিপ্রেজেন্ট করে এবং XElement একটি নির্দিষ্ট XML এলিমেন্টের রিপ্রেজেন্টেশন।


XML ডেটা লোড করা

XML ডেটা লোড করার জন্য আপনি XDocument.Load() অথবা XElement.Parse() মেথড ব্যবহার করতে পারেন।

ফাইল থেকে XML ডেটা লোড করা:

using System;
using System.Xml.Linq;

class Program
{
    static void Main()
    {
        // XML ফাইল লোড করা
        XDocument doc = XDocument.Load("books.xml");

        // XML ডেটা প্রিন্ট করা
        Console.WriteLine(doc);
    }
}

এখানে, "books.xml" ফাইল থেকে XML ডেটা লোড করা হয়েছে এবং প্রিন্ট করা হয়েছে।

XML স্ট্রিং থেকে XML ডেটা লোড করা:

using System;
using System.Xml.Linq;

class Program
{
    static void Main()
    {
        // XML স্ট্রিং লোড করা
        string xmlString = "<Books><Book><Title>Learn C#</Title><Author>John Doe</Author><Price>29.99</Price></Book><Book><Title>Advanced C#</Title><Author>Jane Smith</Author><Price>49.99</Price></Book></Books>";
        XDocument doc = XDocument.Parse(xmlString);

        // XML ডেটা প্রিন্ট করা
        Console.WriteLine(doc);
    }
}

এখানে, একটি XML স্ট্রিং সরাসরি লোড করে XML ডেটা প্রিন্ট করা হয়েছে।


XML ডেটা কুয়েরি করা

LINQ to XML ব্যবহার করে XML ডেটার উপাদানগুলির সাথে কুয়েরি করা সম্ভব। এটি অত্যন্ত শক্তিশালী এবং সহজ একটি টুল। XML ডেটাতে সাধারণত ডকুমেন্টের নোডগুলি (যেমন <Book>, <Title>, <Author>, ইত্যাদি) খুঁজে বের করা হয় এবং তাদের ওপর LINQ কুয়েরি প্রয়োগ করা হয়।

XML ডেটায় কুয়েরি করা (উদাহরণ)

ধরা যাক, আমাদের কাছে নিচের মতো একটি XML ডেটা রয়েছে:

<Books>
    <Book>
        <Title>Learn C#</Title>
        <Author>John Doe</Author>
        <Price>29.99</Price>
    </Book>
    <Book>
        <Title>Advanced C#</Title>
        <Author>Jane Smith</Author>
        <Price>49.99</Price>
    </Book>
</Books>

এখন, আমরা এই XML ডেটা থেকে বইয়ের টাইটেল বের করতে চাই।

using System;
using System.Linq;
using System.Xml.Linq;

class Program
{
    static void Main()
    {
        // XML ফাইল লোড করা
        XDocument doc = XDocument.Load("books.xml");

        // LINQ to XML ব্যবহার করে বইয়ের টাইটেল বের করা
        var titles = from book in doc.Descendants("Book")
                     select book.Element("Title").Value;

        foreach (var title in titles)
        {
            Console.WriteLine(title);  // Output: Learn C#, Advanced C#
        }
    }
}

এখানে, Descendants("Book") মেথডের মাধ্যমে সব Book এলিমেন্টগুলোকে বের করা হচ্ছে এবং Element("Title").Value দিয়ে Title এলিমেন্টের মান নেওয়া হচ্ছে।


XML ডেটা ফিল্টার করা

LINQ to XML এর মাধ্যমে আপনি নির্দিষ্ট শর্তে XML ডেটা ফিল্টার করতে পারেন। যেমন, Price এর মান ৩০ এর বেশি এমন বইগুলো ফিল্টার করা।

ফিল্টারিং (Price > 30)

using System;
using System.Linq;
using System.Xml.Linq;

class Program
{
    static void Main()
    {
        // XML ফাইল লোড করা
        XDocument doc = XDocument.Load("books.xml");

        // LINQ to XML ব্যবহার করে Price 30 এর বেশি এমন বইগুলো ফিল্টার করা
        var expensiveBooks = from book in doc.Descendants("Book")
                             where (decimal)book.Element("Price") > 30
                             select book.Element("Title").Value;

        foreach (var title in expensiveBooks)
        {
            Console.WriteLine(title);  // Output: Advanced C#
        }
    }
}

এখানে, where (decimal)book.Element("Price") > 30 শর্তে ব্যবহার করে শুধুমাত্র ৩০ এর বেশি মূল্য বিশিষ্ট বইগুলো নির্বাচন করা হয়েছে।


XML ডেটায় অ্যাট্রিবিউট কুয়েরি করা

XML ডেটায় এলিমেন্টের পাশাপাশি অ্যাট্রিবিউটও থাকতে পারে। LINQ to XML এ অ্যাট্রিবিউটের মান বের করাও সম্ভব।

XML ডেটায় অ্যাট্রিবিউটের মান বের করা

ধরা যাক, আমাদের XML ডেটাতে প্রতিটি Book এর একটি id অ্যাট্রিবিউট রয়েছে:

<Books>
    <Book id="1">
        <Title>Learn C#</Title>
        <Author>John Doe</Author>
        <Price>29.99</Price>
    </Book>
    <Book id="2">
        <Title>Advanced C#</Title>
        <Author>Jane Smith</Author>
        <Price>49.99</Price>
    </Book>
</Books>

এখন, আমরা id অ্যাট্রিবিউটের মান দিয়ে বইয়ের তথ্য বের করতে চাই।

using System;
using System.Linq;
using System.Xml.Linq;

class Program
{
    static void Main()
    {
        // XML ফাইল লোড করা
        XDocument doc = XDocument.Load("books.xml");

        // LINQ to XML ব্যবহার করে id = 1 এর বইয়ের টাইটেল বের করা
        var book = from b in doc.Descendants("Book")
                   where b.Attribute("id").Value == "1"
                   select new
                   {
                       Title = b.Element("Title").Value,
                       Author = b.Element("Author").Value
                   };

        foreach (var b in book)
        {
            Console.WriteLine($"Title: {b.Title}, Author: {b.Author}");  // Output: Title: Learn C#, Author: John Doe
        }
    }
}

এখানে, Attribute("id").Value ব্যবহার করে id="1" অ্যাট্রিবিউটের মান অনুসারে ফিল্টার করা হয়েছে এবং বইয়ের টাইটেল এবং লেখক নাম বের করা হয়েছে।


সারাংশ

LINQ to XML দিয়ে XML ডেটা লোড এবং কুয়েরি করা অত্যন্ত সহজ। এটি XML ডেটার মধ্যে বিভিন্ন অপারেশন করার জন্য একটি পরিষ্কার এবং কার্যকর উপায় প্রদান করে। XML ডেটা কুয়েরি, ফিল্টার, এবং পরিবর্তন করা LINQ এর মাধ্যমে সহজ এবং প্রাকৃতিকভাবে করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion